9.3. Kuyruk Tasarımı

Bu yöntem yığına atılacak her bir ayrık verinin bağlantılı liste şeklinde tutulmasına dayanır. Yığına veri koyma veya yığından veri alma listenin başından yapılabileceği için yürütme zamanı ve karmaşıklığı oldukça iyidir. Karmaşıklığı her iki işlem için de olur. Yığın, herhangi bir anda şekildeki gibi bir durumdadır. Bir alma işlemi yapıldığında listenin başındaki verilir; dolayısıyla, alma işlemi bağlantılı listenin ilk düğümünü koparma ve içeriğini gönderme işlemidir. Yığına koyma işlemi de, yeni gelen verinin dinamik olarak düğümünü oluşturma ve listenin başına ekleme işlemi dir.

Kuyruk, ilk giren ilk çıkar (First In First Out) mantığıyla çalışan ve bellek üzerinde kurulan bir mekanizmadır. Kuyruk modeli, program tasarımında birçok yerde kullanılır. Örneğin, iki birimi arasında iletişim kanalı, ara bellek/tampon bellek ve öncelik kuyruğu oluşturmada bu modele başvurulur.
Kuyruk tasarımı çeşitli şekillerde gerçekleştirilebilir. Biri, belki de en yalın olanı, bir dizi ve bir indis değişkeni kullanılmasıdır. Dizi gözlerinde yığına atılan veriler tutulurken indis değişkeni kuyruğa eklenen son veriyi işaret eder. Kuyruktan alma/çıkartma işlemi her zaman için dizinin başı olan 0 indisli gözden yapılır. Kuyruk tasarımı için, genel olarak, üç değişik çözüm şekli vardır:

  • Dizi Üzerinde Kaydırmalı (Bir indis Değişkenli)
  • Dizi Üzerinde Çevrimsel (İki indis Değişkenli)
  • Bağlantılı Liste ile